Crate armnod

source ·
Expand description

guacamole

Armnod is an anagram for “random”; Armnod is a library for working with random strings.

Each Armnod consists of a SeedChooser, LengthChooser, and CharacterChooser which compose a set of random strings. The SeedChooser picks the element of the set. It may say to stop iterating (enough items have been chosen), it may say to seek to a particular offset in another guacamole generator (there’s a finite number of seeds), or it may say to not seek at all (an “infinite” number of strings are possible).

The SeedChooser and LengthChooser both pull from a guacamole::Guacamole stream to generate the seed and a u32 for the string’s length. It’s easy to see that when the guac is positioned at the same point in the stream, the seed and length will be the same.

CharacterChooser pulls bytes from the string and maps them to characters to create a string. Essentially mapping the binary data to ASCII data. UTF-8 marginally supported.

Status

Passive development. The warts pulled it from being maintenance track on 2023-09-19

Scope

This library provides the armnod type and an embeddable command-line interface.

Warts

  • The ArmnodOptions does not create the Armnod instance; it should.

Documentation

The latest documentation is always available at docs.rs.

Structs

Enums

  • SeedChoice chooses the string to be generated from one of three possibilities. The first could be to not generate anything and stop iterating. This is useful, e.g., when the SeedChoice generates each string exactly once for purposes of loading data. The second choice is to skip seeding. This will avoid a seek at the lower level random number generator, but it means the data generated will truly span the domain of Guacamole.

Constants

  • The alnum character set includes lower- and upper-case ASCII alphabets and the digits.
  • The alph character set includes lower- and upper-case ASCII alphabets.
  • The default character set includes most printable ASCII.
  • The digit character set includes ASCII digits.
  • The hex character set includes lower-case hexadecimal numbers.
  • The lower character set includes lower-case ASCII alphabets.
  • The punct character set includes ASCII punctuation.
  • The upper character set includes upper-case ASCII alphabets.

Traits